在前一篇文章跟大家分享 go 的介面,但是在其中有些內容尚未跟大家說明因為要說明該內容有點多,所以另闢一篇文章專門說明那東西,所以這篇文章要說明的就是 go 的類別。
本文同步放置於此
類別是什麼呢,簡單說明就是 go 的自訂義型別,為什麼筆者會稱為類別呢,因為類別的關鍵字是type
,接下來就跟大家分享這篇文章的主要內容是 go 的類別,說明的內容分為宣告以及使用,以下分為兩個段落個別介紹。
宣告類別的方式就如同其它語言的繼承一樣,只不過 go 語言沒有繼承所以筆者不用這個詞來說明他,接下來大家看看如何宣告一個自訂義的型別
type MyFloat float64
這宣告一個自定義型別 MyFloat 擁有 float64
的屬性,簡單講就是把自定義的這個型別當成 float64
來使用。當然我們的自定義型別不能這麼單純,所以接下來要介紹複雜的自定義型別。
接下來要說明的是複雜的型別 struct
,他的宣告方式請看下列說明。
type Vertex struct {
X int
Y int
}
上面例子跟大家說明複雜的結果要用 struct
這關鍵字,並在 {}
內宣告結構所包含的內容,在這例子裡是兩個 int
分別為X、Y,接下來要說明如何使用這自定義的型別。
上一個段落跟大家分享如何宣告一個複雜型別,接下來跟大家分享如何使用這個自定義型別,請大家看一下下列例子
package main
import "fmt"
type Vertex struct {
X int
Y int
}
func main() {
p := Vertex{1,1}
pos(p)
}
func pos(p Vertex){
fmt.Print("X:",p.X,", Y:",p.Y)
}
這裡我們生成一個名為 p 的自定義複雜型別,並給予其各ㄧ個整數 1,然後再方法內透過 .
來取得該屬性的值。
介紹自定義型別先到這裡告一段落,但是 go 的類別並不是這麼簡單而已,接下來要更進一步介紹 *
這東西。